<?php
/////////////////////////////////////////////////////////////////////////////
// FleaPHP Framework
//
// copyright Copyright (c) 2008 - 2013 广州市织慧电子科技有限公司
//
// 许可协议，请查看源代码中附带的 LICENSE.txt 文件。
// 
/////////////////////////////////////////////////////////////////////////////

/**
 * 定义 Conroller_Login 类
 *
 * @copyright Copyright (c) 2008 - 2013 广州市织慧电子科技有限公司
 * @author 恒创科技 (www.handtrack.com.cn)
 * @package 零售商管理系统
 * @subpackage 影碟店
 * @version $Id: Login.php 1 2008-04-22  handtrack $
 */

/**
 * Controller_Login 实现了用户登录和注销
 * @version 1.0
 */
class Controller_Login extends FLEA_Controller_Action
{
    /**
     * 构造函数
     *
     * @return Controller_Login
     */
    function Controller_Login() {
        
    }

    /**
     * 显示登录界面
     */
    function actionIndex() {
    	$ui =& FLEA::initWebControls();
        require(APP_DIR . '/LoginIndex.php');
    }

    /**
     * 注销
     */
    function actionLogout() {
        session_destroy();
        $msg = '注销';
        $ui =& FLEA::initWebControls();
        include(APP_DIR . '/LoginIndex.php');
    }

    /**
     * 登录
     */
    function actionLogin() {
        $imgcode =& FLEA::getSingleton('FLEA_Helper_ImgCode');
        /* @var $imgcode FLEA_Helper_ImgCode */
        do {
            if (!$imgcode->check($_POST['imgcode'])) {
                $msg ='验证码无效';
                break;
            }
            $imgcode->clear();

            /**
             * 验证用户名和密码是否正确
             */
            $sysusers =& FLEA::getSingleton('Model_SysUsers');
            /* @var $sysusers Model_SysUsers */
            $user = $sysusers->findByUsername($_POST['username']);
            if (!$user) {
                $msg ='用户名无效';
                break;
            }

            if (!$sysusers->checkPassword($_POST['password'],
                $user[$sysusers->passwordField]))
            {
                $msg = '密码无效';
                break;
            }

            /**
             * 登录成功，通过 RBAC 保存用户信息和角色
             */
            $data = array();
            $data['USERNAME'] = $user[$sysusers->usernameField];
            $data['ID'] = $user[$sysusers->primaryKey];
			$data['terminal_id'] = $user[$sysusers->userTerminalField];

            $rbac =& FLEA::getSingleton('FLEA_Rbac');
            /* @var $rbac FLEA_Rbac */
            $rbac->setUser($data, $sysusers->fetchRoles($user));

            // 重定向
           redirect(url('Board'));
           
        }
        while (false);

        // 登录发生错误，再次显示登录界面
        $ui =& FLEA::initWebControls();
        include(APP_DIR . '/LoginIndex.php');
    }

    /**
     * 显示验证码
     */
    function actionImgCode() {
        $imgcode =& FLEA::getSingleton('FLEA_Helper_ImgCode');
        /* @var $imgcode FLEA_Helper_ImgCode */
        $imgcode->image();
    }
}
